package com.chilly.vidio.study.leetcode;

/**
 * 344. 反转字符串
 *
 * @author Chilly Cui
 * @createDate 2021/3/3
 */
public class No344ReverseString {
    public static void main(String[] args) {
        char[] s = "abcd".toCharArray();
        new Solution().reverseString(s);
        System.out.println(s);
    }

    static class Solution {

        /**
         * 方法一：双指针
         * 复杂度分析
         * 时间复杂度：O(N)，其中 N 为字符数组的长度。一共执行了 N/2 次的交换。
         * 空间复杂度：O(1)。只使用了常数空间来存放若干变量。
         */
        public void reverseString(char[] s) {
            int l = 0;
            int r = s.length - 1;

            while (l < r) {
                char tmp = s[l];
                s[l] = s[r];
                s[r] = tmp;
                l++;
                r--;
            }
        }
    }
}
